package com.thp.cas.service;

import java.util.ArrayList;
import java.util.Collection;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
/**
 * 认证类 :
 *   这个认证类并不做认证处理 ,而是交给cas去做认证
 *   这个认证类是在cas认证之后再执行的
 *   返回的是一个角色列表
 * @author lenovo
 *
 */
public class UserDetailsServiceImpl implements UserDetailsService {

	@Override
	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
		
		System.out.println("认证的角色名字:" + username);
		
		Collection<GrantedAuthority> authorities =  new ArrayList<>();
		/**
		 * 在互联网项目中  用户的角色一般只有一个
		 * 但是在传统项目中 ,用户的角色可能有多个
		 * 那么就需要从数据库中查询  然后遍历添加
		 */
		authorities.add(new SimpleGrantedAuthority("ROLE_USER"));
		return new User(username, "", authorities);
	}

}
